# 模拟学生成绩数据
import pandas as pd
import numpy as np

# 创建示例数据
np.random.seed(42)  # 设置随机种子，确保结果可重现

# 生成模拟数据
data = {
    '学号': range(1, 31),  # 30个学生
    '姓名': [f'学生{i}' for i in range(1, 31)],
    '班级': np.random.choice(['A班', 'B班', 'C班'], 30),
    '语文': np.random.randint(60, 100, 30),
    '数学': np.random.randint(50, 100, 30),
    '英语': np.random.randint(55, 100, 30),
    '出勤率': np.random.uniform(0.7, 1.0, 30).round(2)
}

# 创建DataFrame
df = pd.DataFrame(data)

# 添加总分和平均分
df['总分'] = df[['语文', '数学', '英语']].sum(axis=1)
df['平均分'] = df[['语文', '数学', '英语']].mean(axis=1).round(1)

# 方法1：直接保存
df.to_excel('学生成绩.xlsx', index=False)

# 方法2：保存多个sheet，添加格式
with pd.ExcelWriter('学生成绩详细版.xlsx', engine='xlsxwriter') as writer:
    # 保存原始数据
    df.to_excel(writer, sheet_name='原始数据', index=False)
    
    # 保存班级统计数据
    班级统计 = df.groupby('班级').agg({
        '语文': ['mean', 'max', 'min'],
        '数学': ['mean', 'max', 'min'],
        '英语': ['mean', 'max', 'min'],
        '平均分': 'mean'
    }).round(1)
    班级统计.to_excel(writer, sheet_name='班级统计')
    
    # 获取workbook和worksheet对象
    workbook = writer.book
    worksheet = writer.sheets['原始数据']
    
    # 添加一些格式
    header_format = workbook.add_format({
        'bold': True,
        'align': 'center',
        'bg_color': '#D7E4BC'
    })
    
    # 设置表头格式
    for col_num, value in enumerate(df.columns.values):
        worksheet.write(0, col_num, value, header_format)
    
    # 设置列宽
    worksheet.set_column('A:I', 12)

print("文件已保存：")
print("1. 学生成绩.xlsx (简单版)")
print("2. 学生成绩详细版.xlsx (包含统计信息和格式)")

